package com.jinxiangyang.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jinxiangyang.domain.LiveCourse;
import com.jinxiangyang.domain.LiveCourseDescription;
import com.jinxiangyang.domain.vo.LiveCourcseVo;
import com.jinxiangyang.domain.vo.LiveCourseVo;
import com.jinxiangyang.mapper.LiveCourseDescriptionMapper;
import com.jinxiangyang.mapper.LiveCourseMapper;
import com.jinxiangyang.mapper.SubjectMapper;
import com.jinxiangyang.mapper.TeacherMapper;
import com.jinxiangyang.service.LiveCourseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jinxiangyang.utils.oos.OOSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 直播课程表 服务实现类
 * </p>
 *
 * @author jinxiangyang
 * @since 2023-08-12
 */
@Service
public class LiveCourseServiceImpl extends ServiceImpl<LiveCourseMapper, LiveCourse> implements LiveCourseService {


    @Autowired
    private  LiveCourseMapper liveCourseMapper;

    @Autowired
    private LiveCourseDescriptionMapper liveCourseDescriptionMapper;



    @Override
    public LiveCourcseVo getLiveCourseByCourseId(Integer id){
        List<LiveCourcseVo> liveCourseByPage = liveCourseMapper.findLiveCourseByPage(id);
        if(!liveCourseByPage.isEmpty()){
            return liveCourseByPage.get(0);
        }else{
            return null;
        }

    }

    @Override
    public IPage<LiveCourseVo> getLiveCourseByPage(Long currentPage, Long pageSize) {
        Page<LiveCourseVo> page = new Page<>(currentPage,pageSize);
        return liveCourseMapper.getLiveCourseByPage(page);
    }

    @Override
    public IPage<LiveCourseVo> getLiveCourseByPage(Long currentPage, Long pageSize,LiveCourseVo liveCourseVo) {
        Page<LiveCourseVo> page = new Page<>(currentPage,pageSize);
        return liveCourseMapper.getLiveCourseByLike(page,liveCourseVo);
    }

    @Override
    public boolean addLiveCourse(LiveCourseVo liveCourseVo) {
        LiveCourse liveCourse = new LiveCourse();
        liveCourse.setStartTime(liveCourseVo.getStartTime());
        liveCourse.setEndTime(liveCourseVo.getEndTime());
        liveCourse.setCover(liveCourseVo.getCover());
        liveCourse.setCourseName(liveCourseVo.getCourseName());
        liveCourse.setTeacherId(liveCourseVo.getTeacherId());
        liveCourse.setSubjectId(liveCourseVo.getSubjectId());
        liveCourse.setCourseId(liveCourseVo.getLiveCourseId());
        int i = liveCourseMapper.insert(liveCourse);

        LiveCourseDescription liveCourseDescription = new LiveCourseDescription();
        liveCourseDescription.setDescription(liveCourseVo.getDescription());
        liveCourseDescription.setLiveCourseId(liveCourseVo.getLiveCourseId());
        liveCourseDescriptionMapper.insert(liveCourseDescription);
        if (i == 1) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public String avatarUpload(MultipartFile file) {
        return OOSUtils.avatarUpload(file);
    }


}
